const mysql = require('mysql');
const config = require('../config/config.json');
var pool = mysql.createPool(config[config.env].sql);
var db = {};
// 封装sql查询
db.sql = function (sql, obj, flag) {
  var promise = new Promise(function (resolve, reject) {
    pool.getConnection(function (err, connection) {
      if (err) {
        err.status = false;
        console.log("数据库链接err: " + err)
        reject(err);
      } else {
        // 向数据库发送sql语句
        // 1.错误对象，2.具体的返回的结果-数组，里面包含很多json，3.也是一个数组，里面包含着最每个数据的解释，比如当前数据属于哪个库，哪张表等等。
        let result = connection.query(sql, obj, function (qerr, results, fields) {
          if (qerr) {
            qerr.status = false;
            connection.release();
            reject(qerr);
          } else {
            connection.release();
            var data = {};
            data.status = true;
            switch (flag) {
              case "select":
                data.data = results;
                break;
              case "update":
                data.message = "修改成功!";
                break;
              case "insert":
                data.insertId = results.insertId;
                data.message = "新增成功!";
                break;
              default:
                data.message = "删除成功!";
                break;
            }
            resolve(data);
          }
        })
        console.log(result.sql);
      }
    })
  })
  return promise;
}
module.exports = db;